package com.huluobo.a2307douyindemo.demo.hilt

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import androidx.lifecycle.ViewModelProvider
import com.huluobo.a2307douyindemo.R
import dagger.hilt.android.AndroidEntryPoint

@AndroidEntryPoint
class HiltActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_hilt)

//        //没有使用依赖注入的情况,通过一次固定的实例化来调用内部类的方法
//        val mobilePhone = MobilePhone()
//        mobilePhone.dialNumber()
//
//        //使用依赖注入的情况,需要提供一个类,来调用内部方法
//        val mobilePhone1 = MobilePhone()
//        val simCard = SimCard()
//        mobilePhone1.dialNumber2(simCard)
        val vm = ViewModelProvider(this)[LoginViewModel::class.java]
        val user = vm.login()
        Log.e("TagA", "user:$user")
    }
}

//sim卡
class SimCard {
    fun call() {
        Log.e("TagA", "拨打电话")
    }
}

class MobilePhone {
    //没有使用依赖注入的情况
    //拨号
    fun dialNumber() {
        val simCard = SimCard()
        simCard.call()
    }

    //使用依赖注入
    fun dialNumber2(simCard: SimCard) {
        simCard.call()
    }
}